/*
database.go 数据库初始化文件
*/

package database

import (
	"database/sql"
	"fmt"
	"log"
)

type DB struct {
	*sql.DB
}

func NewDB(dsn string) (*DB, error) {
	db, err := sql.Open("mysql", dsn)
	if err != nil {
		return nil, fmt.Errorf("打开数据库失败：%w", err)
	}
	if err := db.Ping(); err != nil {
		return nil, fmt.Errorf("连接数据库失败：%w", err)
	}

	log.Println("成功连接数据库")
	return &DB{db}, nil
}

func (db *DB) Close() error {
	return db.DB.Close()
}
